package com.chinasofti.zbest.dao;

import com.chinasofti.zbest.dao.model.Product;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chinasofti.zbest.service.info.ProductInfo;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 商品 Mapper 接口
 * </p>
 *
 * @author zbest
 * @since 2019-05-28
 */
public interface ProductMapper extends BaseMapper<Product> {

    /**
     * 分页查找
     * @param count
     * @return
     */
    List<Product> selectTop(int count);

    /**
     * 根据类型商品id分页
     * @param categoryId
     * @return
     */
    List<Product> searchIdea(@Param("categoryId") int categoryId);
    /**
     * 搜索
     * @param productName
     * @return
     */
    List<Product> search(@Param("productName")String productName);


    /**
     * 商品分类及按销量降序展示在所有商品
     * @param counts
     * @return
     */
    List<ProductInfo> searchProduct(int counts);

    /**
     * 商品根据类型名显示商品
     * @param counts
     * @return
     */
    List<ProductInfo> searchName(int counts);

    /**
     * 根据商品名分类显示
     * @param count
     * @return
     */
    List<ProductInfo> searchDate(int count);

    /**
     * 根据类型Id显示商品
     * @param categoryId
     * @return
     */
    List<ProductInfo> searchCategoryId(@Param("categoryId") int categoryId);

    List<ProductInfo> searchFlowerId(@Param("categoryId") int categoryId);
    List<String> orderByCategoryName();

    List<String> orderByDriedFlowerType();

    List<String> orderByPutPosition();

    List<String> orderByFit();

    List<String> orderByColor();

    List<Product> searchBy(@Param("inputInfo")String inputInfo);

    List<Product> searchByDate(@Param("inputInfo") String inputInfo);

    List<Product> searchBySalesH(@Param("inputInfo")String inputInfo);

    List<Product> searchBySalesL(@Param("inputInfo")String inputInfo);

    List<Product> searchByPriceH(@Param("inputInfo")String inputInfo);

    List<Product> searchByPriceL(@Param("inputInfo")String inputInfo);

    void midifyProCount(@Param("productId")Integer productId,@Param("proCount")Integer proCount,@Param("proSales") Integer proSales);

    Product queryByProductNum(@Param("productNumber")String productNumber);

}
